// 时间格式化工具函数

/**
 * 格式化UTC时间为本地时间
 * @param {string} utcString UTC时间字符串
 * @param {Object} options 格式化选项
 * @returns {string} 格式化后的时间字符串
 */
export function formatDateTime(utcString, options = {}) {
  if (!utcString) return '';
  
  const defaultOptions = {
    timeZone: 'Asia/Shanghai',
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit',
    hour12: false
  };

  const date = new Date(utcString);
  return date.toLocaleString('zh-CN', { ...defaultOptions, ...options });
}

/**
 * 获取当前UTC时间字符串
 * @returns {string} UTC时间字符串
 */
export function getCurrentUTCTime() {
  return new Date().toISOString();
}

/**
 * 计算过期时间
 * @param {number} hours 小时数
 * @returns {string} UTC时间字符串
 */
export function getExpiryTime(hours = 24) {
  const date = new Date();
  date.setHours(date.getHours() + hours);
  return date.toISOString();
}

/**
 * 检查时间是否过期
 * @param {string} expiryTime UTC时间字符串
 * @returns {boolean} 是否过期
 */
export function isExpired(expiryTime) {
  if (!expiryTime) return true;
  return new Date(expiryTime) < new Date();
}

/**
 * 格式化时间差
 * @param {string} startTime 开始时间（UTC）
 * @param {string} endTime 结束时间（UTC），默认为当前时间
 * @returns {string} 格式化后的时间差
 */
export function formatTimeDiff(startTime, endTime = new Date().toISOString()) {
  const start = new Date(startTime);
  const end = new Date(endTime);
  const diffMs = end - start;
  
  const minutes = Math.floor(diffMs / 60000);
  if (minutes < 60) {
    return `${minutes} 分钟`;
  }
  
  const hours = Math.floor(minutes / 60);
  if (hours < 24) {
    return `${hours} 小时`;
  }
  
  const days = Math.floor(hours / 24);
  return `${days} 天`;
}
